home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir30 / statecad.zip / DEMORUN.MST < prev    next >
Text File  |  1994-08-13  |  14KB  |  503 lines

  1. '' DEMORUN.MST
  2. '**************************************************************************
  3. '*                       DEMORUN Demo Product Setup
  4. '**************************************************************************
  5.  
  6. ''$DEFINE DEBUG     ''Define for script development/debugging
  7. ''$DEFINE DISKSIZE  ''Define if you want to check for disk space
  8.  
  9. '$INCLUDE 'defines.inc'
  10.  
  11. '$INCLUDE 'setupapi.inc'
  12. '$INCLUDE 'msdetect.inc'
  13.  
  14. ''Dialog ID's
  15. CONST WELCOME   = 100
  16. CONST ASKQUIT           = 200
  17. CONST DESTPATH          = 300
  18. CONST EXITFAILURE   = 400
  19. CONST EXITQUIT          = 600
  20. CONST EXITSUCCESS  = 700
  21. CONST OPTIONS   = 800
  22. CONST APPHELP   = 900
  23. CONST DRIVESELECT   = 1100
  24. CONST BADPATH   = 6400
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 1
  28.  
  29. GLOBAL DEST$            ''Default destination directory.
  30. GLOBAL OPTCUR$      'Null for now
  31. GLOBAL WINDRIVE$    'Used in size test
  32.  
  33. GLOBAL SrcDir$
  34. GLOBAL WinDir$
  35. GLOBAL WinSysDir$
  36. GLOBAL PRODUCT$
  37. GLOBAL VFW%        ''=1 if VFW Run Time previous install
  38. GLOBAL PRO%
  39. GLOBAL OKWRITE%
  40.  
  41. GLOBAL WantedDiskSize&  ''Used for disk size test
  42. GLOBAL WantedDataSize&  ''Used for disk size test frin INC file
  43.  
  44. DECLARE SUB Install
  45. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  46.  
  47. ''DECLARE FUNCTION DoProtect LIB "PROTECT.DLL" (szDisk$) AS INTEGER
  48.  
  49. INIT:
  50.     CUIDLL$   = "mscuistf.dll"              ''Custom user interface dll
  51.     HELPPROC$ = "FHelpDlgProc"      ''Help dialog procedure
  52.  
  53.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  54.     WinDir$ = GetWindowsDir()
  55.     WinSysDir$ = GetWindowsSysDir()
  56.  
  57.     MajorVer% = GetWindowsMajorVersion()
  58.     MinorVer% = GetWindowsMinorVersion()
  59.  
  60.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  61.         i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  62.         END
  63.     END IF
  64.  
  65. '$IFDEF DEMOQUICK
  66.     PRODUCT$ = "DEMOQUICK"
  67. '$ELSEIFDEF VHELP
  68.     PRODUCT$ = "VHELP"
  69. '$ELSEIFDEF PRODDE
  70.     PRODUCT$ = "PRODDE"
  71. '$ELSEIFDEF CBIQUICK
  72.     PRODUCT$ = "CBIQUICK"
  73. '$ELSEIFDEF CBIPRO
  74.     PRODUCT$ = "CBIPRO"
  75. '$ELSE
  76.     i% = DoMsgBox("Product type not defined.", "Define product", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  77.     END
  78. '$ENDIF
  79.  
  80.     SetBitmap CUIDLL$, LOGO
  81.  
  82. ''VSS
  83.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  84.         SetTitle "StateCAD 2.0 Tour Guide Setup"
  85.     ELSE
  86.         SetTitle "Tutorial Install ... Created with CBIquick"
  87.     ENDIF
  88.  
  89.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  90.  
  91.     IF szInf$ = "" THEN
  92.          szInf$ = GetSymbolValue("STF_CWDDIR") + "DEMORUN.INF"
  93.     END IF
  94.  
  95.     ReadInfFile szInf$
  96.  
  97.     OPTCUR$ = "1"
  98.  
  99. ''VSS
  100.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  101.         DEST$ = "C:\SCADTOUR"
  102.     ELSE
  103.         DEST$ = "C:\CBIRUN"
  104.     ENDIF
  105.  
  106. WELCOME:
  107.  
  108. GETPATH:
  109.     SetSymbolValue "EditTextIn", DEST$
  110.     SetSymbolValue "EditFocus", "END"
  111.  
  112. GETPATHL1:
  113.     sz$   = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  114.     DEST$ = GetSymbolValue("EditTextOut")
  115.  
  116.     IF sz$ = "CONTINUE" THEN
  117.  
  118.         UIPop 1
  119.  
  120.     ELSEIF sz$ = "REACTIVATE" THEN
  121.         GOTO GETPATHL1
  122.     ELSEIF sz$ = "BACK" THEN
  123.         UIPop 1
  124.         GOTO WELCOME
  125.     ELSE
  126.         GOSUB ASKQUIT
  127.         GOTO WELCOME
  128.     END IF
  129.  
  130.     ''------------------------------------------------------------------
  131.  
  132.     Install
  133.  
  134.     ''------------------------------------------------------------------
  135.  
  136. QUIT:
  137.     ON ERROR GOTO ERRQUIT
  138.  
  139.     IF ERR = 0 THEN
  140.         dlg% = EXITSUCCESS
  141.     ELSEIF ERR = STFQUIT THEN
  142.         dlg% = EXITQUIT
  143.     ELSE
  144.         dlg% = EXITFAILURE
  145.     END IF
  146. QUITL1:
  147.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  148.     IF sz$ = "REACTIVATE" THEN
  149.     GOTO QUITL1
  150.     END IF
  151.     UIPop 1
  152.  
  153.     END
  154.  
  155. ERRQUIT:
  156.     i% = DoMsgBox("Problem with SEETUP files, call (508) 263-3030 !", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  157.     END
  158.  
  159.  
  160.  
  161. BADPATH:
  162.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  163.     IF sz$ = "REACTIVATE" THEN
  164.     GOTO BADPATH
  165.     END IF
  166.     UIPop 1
  167.     RETURN
  168.  
  169.  
  170.  
  171. ASKQUIT:
  172.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  173.  
  174.     IF sz$ = "EXIT" THEN
  175.     UIPopAll
  176.     ERROR STFQUIT
  177.     ELSEIF sz$ = "REACTIVATE" THEN
  178.     GOTO ASKQUIT
  179.     ELSE
  180.     UIPop 1
  181.     END IF
  182.     RETURN
  183.  
  184. '**********************************************************************
  185. '** Install
  186. '**
  187. '** Purpose:
  188. '**     Builds the copy list and performs all installation operations.
  189. '** Arguments:
  190. '**     none.
  191. '** Returns:
  192. '**     none.
  193. '*************************************************************************
  194. SUB Install STATIC
  195.  
  196.     ''Save a copy of previous menu (if present)------------------------
  197.     DEST_MNU$ = DEST$ + "\DEMORUN.MNU"
  198.     OLD_MNU$   = DEST$ + "\OLD.MNU"
  199.     i% = DoesFileExist(DEST_MNU$, femExists)
  200.  
  201.     IF i% = 1 THEN
  202.         CopyFile DEST_MNU$, OLD_MNU$, cmoNone, 0
  203.     END IF
  204.     
  205.     ''--------------------------------------------------------------------
  206.  
  207.     ''Check the disk space - TEST THIS ON NETWORK DRIVES-----------------
  208.     WINDRIVE$ = MID$(DEST$, 1, 1)
  209.     
  210.     ''Define a minimum default size
  211.     WantedDiskSize&=4000000
  212.  
  213.     ''Get the size from create disk
  214.     '$INCLUDE 'DEMOSIZE.INC'
  215.  
  216.     ''Add amount for software overhead
  217.     WantedDiskSize& = WantedDataSize& + 1600000
  218.  
  219.     DiskSize&=GetFreeSpaceForDrive(WINDRIVE$)
  220.  
  221.     IF WantedDiskSize& > DiskSize& THEN
  222.         i% = DoMsgBox("Not enough free disk space.  Please free some space and try again", "Insufficient Disk Space", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  223.         END
  224.     END IF
  225.     
  226.     ''-----------------------------------------------------------------------
  227.     
  228.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  229.     CreateDir DEST$, cmoNone
  230.  
  231.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  232.     WriteToLogFile ""
  233.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  234.     WriteToLogFile "  Installing DISK 1 to: '" + DEST$ + "'"
  235.     WriteToLogFile ""
  236.  
  237.     AddSectionFilesToCopyList "Files1", SrcDir$, DEST$
  238.  
  239.  
  240.     ''Add Video-For-Windows Run-Time files------------------------------
  241.     ''See if we can install VFW on system
  242.  
  243.     VFW% = DoesFileExist(MakePath(WinSysDir$, "MSVIDEO.DLL"), femExists)
  244.  
  245.     OKWRITE% = IsDirWritable(WinSysDir$)
  246.  
  247.     IF (VFW% = 0) AND (OKWRITE% = 1) THEN
  248.         AddSectionFilesToCopyList "VFW Runtime", SrcDir$, WinSysDir$
  249.         AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  250.     ELSE
  251.         IF VFW% = 1 THEN
  252.             i% = DoMsgBox("Video For Windows drivers already present.  Install will continue.  Click on OK.", "Video-For-Windows Present", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  253.         ELSEIF OKWRITE% = 0 THEN
  254.             i% = DoMsgBox("WINDOWS\SYSTEM directory is write protected.  Drivers not installed.", "Video-For-Windows Drivers", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  255.         ENDIF
  256.     ENDIF
  257.   
  258.     ''Add PROFILE.EXE program if not there -----------------------------
  259.     PRO% = DoesFileExist(MakePath(WinSysDir$, "PROFDISP.EXE"), femExists)
  260.     IF (PRO% = 0) AND (OKWRITE% = 1) THEN
  261.         AddSectionFilesToCopyList "Profile", SrcDir$, WinSysDir$
  262.     ENDIF
  263.  
  264.     ''Copy the files, initialize display.........................................
  265.  
  266.  
  267.     CopyFilesInCopyList
  268.  
  269.  
  270.     ''Update WIN.INI and SYSTEM.INI......................................
  271.     IF VFW% = 0 THEN
  272.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  273.         CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  274.         CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  275.     ENDIF
  276.  
  277.     Run ("profdisp")
  278.  
  279.     IF (PRODUCT$="DEMOQUICK") OR (PRODUCT$="VHELP") OR (PRODUCT$="PRODDE") THEN
  280.         CreateProgmanGroup "Tour Guide", WinDir$+"SCADTOUR.GRP", cmoNone
  281.         ShowProgmanGroup  "Tour Guide", 1, cmoNone
  282.     ELSE
  283.         CreateProgmanGroup "CBIrun", WinDir$+"CBIRUN.GRP", cmoNone
  284.         ShowProgmanGroup  "CBIrun", 1, cmoNone
  285.     ENDIF    
  286.  
  287.     ''Append old .MNU menu to new
  288.     i% = DoesFileExist(OLD_MNU$, femExists)
  289.  
  290.     IF i% = 1 THEN
  291.     CopyFile OLD_MNU$, DEST_MNU$, cmoNone, 1
  292.     END IF
  293.  
  294.  
  295.     ''Get the icon label def created by DQ in Create Disk
  296.  
  297. '$IFDEF DEMOQUICK
  298.     '$INCLUDE 'DEMOLABL.INC'
  299. '$ELSEIFDEF VHELP
  300.     '$INCLUDE 'DM_LAB_D.INC'
  301. '$ELSEIFDEF PRODDE
  302.     '$INCLUDE 'DM_LAB_D.INC'
  303. '$ELSEIFDEF CBIQUICK
  304.     '$INCLUDE 'DEMOLABL.INC'
  305. '$ELSEIFDEF CBIPRO
  306.     '$INCLUDE 'DM_LAB_D.INC'
  307. '$ELSE
  308.     i% = DoMsgBox("Product type not defined.", "Define product", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  309.     END
  310. '$ENDIF
  311.  
  312.  
  313.     ''Initializing definitions for DISK1-DISK20, up to 20 install disks
  314.     DISK1$ = ""
  315.     DISK2$ = ""
  316.     DISK3$ = ""
  317.     DISK4$ = ""
  318.     DISK5$ = ""
  319.     DISK6$ = ""
  320.     DISK7$ = ""
  321.     DISK8$ = ""
  322.     DISK9$ = ""
  323.     DISK10$ = ""
  324.     DISK11$ = ""
  325.     DISK12$ = ""
  326.     DISK13$ = ""
  327.     DISK14$ = ""
  328.     DISK15$ = ""
  329.     DISK16$ = ""
  330.     DISK17$ = ""
  331.     DISK18$ = ""
  332.     DISK19$ = ""
  333.     DISK20$ = ""
  334.  
  335.     ''Now use the DISKn variables set by DQ Create Disk to flag disks used
  336.     ''in this course install.  Example  DISK3 = "1" to flag disk 1 used.
  337.  
  338.     '$INCLUDE 'DISKNUM.INC'
  339.  
  340.     IF DISK2$ = "1" THEN
  341.     i% = DoMsgBox("Insert Disk # 2 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  342.     ClearCopyList
  343.     AddSectionFilesToCopyList "Files2", SrcDir$, DEST$
  344.     CopyFilesInCopyList
  345.     END IF
  346.  
  347.     IF DISK3$ = "1" THEN
  348.     i% = DoMsgBox("Insert Disk # 3 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  349.     ClearCopyList
  350.     AddSectionFilesToCopyList "Files3", SrcDir$, DEST$
  351.     CopyFilesInCopyList
  352.     END IF
  353.  
  354.     IF DISK4$ = "1" THEN
  355.     i% = DoMsgBox("Insert Disk # 4 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  356.     ClearCopyList
  357.     AddSectionFilesToCopyList "Files4", SrcDir$, DEST$
  358.     CopyFilesInCopyList
  359.     END IF
  360.  
  361.     IF DISK5$ = "1" THEN
  362.     i% = DoMsgBox("Insert Disk # 5 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  363.     ClearCopyList
  364.     AddSectionFilesToCopyList "Files5", SrcDir$, DEST$
  365.     CopyFilesInCopyList
  366.     END IF
  367.  
  368.     IF DISK6$ = "1" THEN
  369.     i% = DoMsgBox("Insert Disk # 6 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  370.     ClearCopyList
  371.     AddSectionFilesToCopyList "Files6", SrcDir$, DEST$
  372.     CopyFilesInCopyList
  373.     END IF
  374.  
  375.     IF DISK7$ = "1" THEN
  376.     i% = DoMsgBox("Insert Disk # 7 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  377.     ClearCopyList
  378.     AddSectionFilesToCopyList "Files7", SrcDir$, DEST$
  379.     CopyFilesInCopyList
  380.     END IF
  381.  
  382.     IF DISK8$ = "1" THEN
  383.     i% = DoMsgBox("Insert Disk # 8 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  384.     ClearCopyList
  385.     AddSectionFilesToCopyList "Files8", SrcDir$, DEST$
  386.     CopyFilesInCopyList
  387.     END IF
  388.  
  389.     IF DISK9$ = "1" THEN
  390.     i% = DoMsgBox("Insert Disk # 9 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  391.     ClearCopyList
  392.     AddSectionFilesToCopyList "Files9", SrcDir$, DEST$
  393.     CopyFilesInCopyList
  394.     END IF
  395.  
  396.     IF DISK10$ = "1" THEN
  397.     i% = DoMsgBox("Insert Disk # 10 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  398.     ClearCopyList
  399.     AddSectionFilesToCopyList "Files10", SrcDir$, DEST$
  400.     CopyFilesInCopyList
  401.     END IF
  402.  
  403.     IF DISK11$ = "1" THEN
  404.     i% = DoMsgBox("Insert Disk # 11 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  405.     ClearCopyList
  406.     AddSectionFilesToCopyList "Files11", SrcDir$, DEST$
  407.     CopyFilesInCopyList
  408.     END IF
  409.  
  410.     IF DISK12$ = "1" THEN
  411.     i% = DoMsgBox("Insert Disk # 12 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  412.     ClearCopyList
  413.     AddSectionFilesToCopyList "Files12", SrcDir$, DEST$
  414.     CopyFilesInCopyList
  415.     END IF
  416.  
  417.     IF DISK13$ = "1" THEN
  418.     i% = DoMsgBox("Insert Disk # 13 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  419.     ClearCopyList
  420.     AddSectionFilesToCopyList "Files13", SrcDir$, DEST$
  421.     CopyFilesInCopyList
  422.     END IF
  423.  
  424.     IF DISK14$ = "1" THEN
  425.     i% = DoMsgBox("Insert Disk # 14 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  426.     ClearCopyList
  427.     AddSectionFilesToCopyList "Files14", SrcDir$, DEST$
  428.     CopyFilesInCopyList
  429.     END IF
  430.  
  431.     IF DISK15$ = "1" THEN
  432.     i% = DoMsgBox("Insert Disk # 15 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  433.     ClearCopyList
  434.     AddSectionFilesToCopyList "Files15", SrcDir$, DEST$
  435.     CopyFilesInCopyList
  436.     END IF
  437.  
  438.     IF DISK16$ = "1" THEN
  439.     i% = DoMsgBox("Insert Disk # 16 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  440.     ClearCopyList
  441.     AddSectionFilesToCopyList "Files16", SrcDir$, DEST$
  442.     CopyFilesInCopyList
  443.     END IF
  444.  
  445.     IF DISK17$ = "1" THEN
  446.     i% = DoMsgBox("Insert Disk # 17 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  447.     ClearCopyList
  448.     AddSectionFilesToCopyList "Files17", SrcDir$, DEST$
  449.     CopyFilesInCopyList
  450.     END IF
  451.  
  452.     IF DISK18$ = "1" THEN
  453.     i% = DoMsgBox("Insert Disk # 18 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  454.     ClearCopyList
  455.     AddSectionFilesToCopyList "Files18", SrcDir$, DEST$
  456.     CopyFilesInCopyList
  457.     END IF
  458.  
  459.     IF DISK19$ = "1" THEN
  460.     i% = DoMsgBox("Insert Disk # 19 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  461.     ClearCopyList
  462.     AddSectionFilesToCopyList "Files19", SrcDir$, DEST$
  463.     CopyFilesInCopyList
  464.     END IF
  465.  
  466.     IF DISK20$ = "1" THEN
  467.     i% = DoMsgBox("Insert Disk # 20 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  468.     ClearCopyList
  469.     AddSectionFilesToCopyList "Files20", SrcDir$, DEST$
  470.     CopyFilesInCopyList
  471.     END IF
  472.  
  473.     CloseLogFile
  474.  
  475. END SUB
  476.  
  477.  
  478. '************************************************************************
  479. '** MakePath
  480. '**
  481. '** Purpose:
  482. '**     Appends a file name to the end of a directory path,
  483. '**     inserting a backslash character as needed.
  484. '** Arguments:
  485. '**     szDir$  - full directory path (with optional ending "\")
  486. '**     szFile$ - filename to append to directory
  487. '** Returns:
  488. '**     Resulting fully qualified path name.
  489. '*************************************************************************
  490. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  491.     IF szDir$ = "" THEN
  492.     MakePath = szFile$
  493.     ELSEIF szFile$ = "" THEN
  494.     MakePath = szDir$
  495.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  496.     MakePath = szDir$ + szFile$
  497.     ELSE
  498.     MakePath = szDir$ + "\" + szFile$
  499.     END IF
  500. END FUNCTION
  501.  
  502.  
  503.